Description
给你一张 $n$ 个点 $m$ 条边无向图,$k$ 次操作,每次去掉一个点和与其相连的所有边,问每次操作后的联通块个数。
数据范围:$1≤n≤400000 , 1≤m≤200000$
Solution
每次删掉一个点不太容易,但是可以反过来想:先去掉所有该去掉的点,然后一个点一个点往上加。
使用并查集来判断联通情况。倒过来枚举 $k$ 个点,找到与该点相连的点,如果不在一个集合内,联通块个数 $-1$,把这两个点添加到同一个集合内。
注意:已经被去掉的点不算一个联通块。在每次加点的时候,联通块个数个数都要先 $+1$。
Code
1 |
|